<template>
	<view class="register">

		<view class="content">
			<!-- 头部logo -->
			<view class="header">
				<image :src="logoImage"></image>
			</view>
			<!-- 主体 -->
			<view class="main">
				<wInput v-model="phoneData" type="text" maxlength="11" placeholder="手机号"></wInput>
				<wInput v-model="passData" type="password" maxlength="11" placeholder="登录密码" isShowPass></wInput>
				<wInput v-model="verCode" type="number" maxlength="4" placeholder="验证码" isShowCode ref="runCode" @setCode="getVerCode()"></wInput>

			</view>

			<wButton text="注 册" :rotate="isRotate" @click.native="startReg()"></wButton>

			<!-- 底部信息 -->
			<view class="footer">
				<text @tap="isShowAgree" class="cuIcon" :class="showAgree?'cuIcon-radiobox':'cuIcon-round'">同意</text>
				<!-- 协议地址 -->
				<navigator url="" open-type="navigate">《协议》</navigator>
			</view>
		</view>
	</view>
</template>

<script>
	var _this;
	import wInput from '../../components/watch-login/watch-input.vue' //input
	import wButton from '../../components/watch-login/watch-button.vue' //button

	export default {
		data() {
			return {
				//logo图片 base64
				logoImage: '',
				phoneData: '', // 用户/电话
				passData: '', //密码
				verCode: "", //验证码
				code: "",
				cookie: null,
				showAgree: true, //协议是否选择
				isRotate: false, //是否加载旋转
			}
		},
		components: {
			wInput,
			wButton,
		},
		mounted() {
			_this = this;
		},
		methods: {
			isShowAgree() {
				//是否选择协议
				_this.showAgree = !_this.showAgree;
			},
			getVerCode() {
				//获取验证码
				if (!(/^1[3456789]\d{9}$/.test(this.phoneData))) {
					this.$toast.error('手机号不正确')
					return false;
				}
				uni.request({
					url: "http://localhost:10998/sms/send/" + this.phoneData,
					success: (res) => {
						console.log(res)
						this.cookie = res.cookies[0]
						this.text = 'request success';
					}
				})
				this.$refs.runCode.$emit('runCode'); //触发倒计时（一般用于请求成功验证码后调用）
				uni.showToast({
					icon: 'none',
					position: 'bottom',
					title: '验证码已发送'
				});
			},
			startReg() {
				//注册
				if (this.isRotate) {
					//判断是否加载中，避免重复点击请求
					return false;
				}
				if (this.showAgree == false) {
					this.$toast.error('请先同意《协议》')
					return false;
				}
				if (!(/^1[3456789]\d{9}$/.test(this.phoneData))) {
					this.$toast.error('手机号不正确')
					return false;
				}
				    if (this.passData.length == 0) {
				        uni.showToast({
				            icon: 'none',
				position: 'bottom',
				            title: '请输入密码'
				        });
				        return false;
				    }
				if (this.verCode.length != 4) {
					this.$toast.error('验证码不正确')
					return false;
				}
				uni.request({
					url: 'http://localhost:10998/user/count/' + this.phoneData,
					method: "GET",
					success: (res) => {
						if (res.data.code == 500) {
							this.$toast.error(res.data.msg)
						} else {
							uni.request({
								url: 'http://localhost:10998/user/register/' + this.phoneData + "/" + this.passData + "/" + this.verCode,
								header: {
									cookie: this.cookie
								},
								success: (res) => {

									if (res.data.code == 500) {
										this.$toast.error(res.data.msg)
									} else {
										this.$toast.success('注册成功')
										setTimeout(function() {
											uni.navigateTo({
												url:'login'
											})
										}, 4500)

									}
								}
							})
						}
					},
				})

				_this.isRotate = true
				setTimeout(function() {
					_this.isRotate = false
				}, 3000)
			},
		},
	}
</script>

<style>
	@import url("../../components/watch-login/css/icon.css");
	@import url("./css/main.css");
</style>
